package managed;

import java.util.ArrayList;

import javax.faces.model.SelectItem;
import javax.sql.DataSource;

import controlador.HiloLector;

import net.sourceforge.pbeans.Store;
import net.sourceforge.pbeans.StoreException;
import net.sourceforge.pbeans.data.GenericDataSource;
import net.sourceforge.pbeans.data.ResultsIterator;
import Modelo.Conferencia;
import Modelo.Conferencista;

public class Principal {

	private String hiloLector;

	private ArrayList<SelectItem> listadoconferencistas = new ArrayList<SelectItem>();
	public ArrayList<Conferencista> conferencistas = new ArrayList<Conferencista>();

	public String llama_conferencista() {

		return "conferencista";
	}

	public String llama_patrocinio() {

		return "patrocinio";
	}

	public String getHiloLector() {
		HiloLector hl = new HiloLector();
		Thread hilo = new Thread(hl);
		hilo.start();
		return hiloLector;
	}

	public void setHiloLector(String hiloLector) {
		this.hiloLector = hiloLector;
	}

	public String llama_generico() {

		return "generico";
	}
	
	public String llama_pantalla() {

		return "pantalla";
	}
	public String llama_moderador() {

		return "moderador";
	}
	
	public String llama_estadistica() {

		return "estadistica";
	}

	public String llama_conferencia() {

		try {
			DataSource dataSource = new GenericDataSource(
					"com.mysql.jdbc.Driver",
					"jdbc:mysql://localhost/smevents?user=root&password=root");

			Store basededatos = new Store(dataSource);

			conferencistas.removeAll(conferencistas);
			ResultsIterator ri = basededatos.select(Conferencista.class,
					"SELECT * FROM conferencista", new Object[0]);
			try {
				while (ri.hasNext()) {
					Conferencista consultado = (Conferencista) ri.next();
					System.out.println("consultado: " + consultado.getNombre());
					conferencistas.add(consultado);
				}
			} finally {
				ri.close();
			}

		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (StoreException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		listadoconferencistas.removeAll(listadoconferencistas);

		for (Conferencista u : conferencistas) {
			listadoconferencistas.add(new SelectItem(u.getNombre(), u
					.getNombre()));
		}

		return "conferencia";

	}

	public ArrayList<SelectItem> getListadoconferencistas() {
		return listadoconferencistas;
	}

	public void setListadoconferencistas(
			ArrayList<SelectItem> listadoconferencistas) {
		this.listadoconferencistas = listadoconferencistas;
	}

}
